Products | Support | Email a link to this topic. | Send comments on this topic. | Back to Introduction - All Topics | Help Version 19.0.6.28
|
Leadtools Namespace > RasterImage Class > SetYUVData Method : SetYUVData(Byte[],Int32,Int32,RasterYUVFormat) Method |
public void SetYUVData( byte[] buffer, int bufferIndex, int bufferCount, RasterYUVFormat yuvFormat )
'Declaration
Public Overloads Sub SetYUVData( _ ByVal buffer() As Byte, _ ByVal bufferIndex As Integer, _ ByVal bufferCount As Integer, _ ByVal yuvFormat As RasterYUVFormat _ )
'Usage
Dim instance As RasterImage Dim buffer() As Byte Dim bufferIndex As Integer Dim bufferCount As Integer Dim yuvFormat As RasterYUVFormat instance.SetYUVData(buffer, bufferIndex, bufferCount, yuvFormat)
public void SetYUVData( byte[] buffer, int bufferIndex, int bufferCount, RasterYUVFormat yuvFormat )
function Leadtools.RasterImage.SetYUVData(Byte[],Int32,Int32,RasterYUVFormat)( buffer , bufferIndex , bufferCount , yuvFormat )
public: void SetYUVData( array<byte>^ buffer, int bufferIndex, int bufferCount, RasterYUVFormat yuvFormat )
This function is designed to be used mainly for use in mobile imaging to facilitate filling a BITMAPHANDLE structure using live frames from the mobile device's camera.
The function ignores the image's view perspective, so it must match the orientation of the YUV buffer. In most cases, the YUV buffer is top-to-bottom, so the ViewPerspective should be TopLeft. If the YUV buffer is flipped, the ViewPerspective should be BottomLeft, so it will be automatically flipped before saving or painting.
The YUV data should contain studio video YUV, with Y values ranging from 16 to 235 and U,V values ranging from 16 to 240. Values outside this range are clipped: values below 16 will be considered as if they were 16. Y values above 235 will be clipped to 235, U/V values above 240 will be clipped to 240.
The only supported bits per pixel are 8, 24 and 32.
Gets the image data in YUV format. The format is indicated by yuvFormat. The data is returned as a byte array. The data starts at index 0 and is equal to the size of the array.
Imports Leadtools Imports Leadtools.Codecs Imports Leadtools.ImageProcessing Imports Leadtools.ImageProcessing.Core Imports Leadtools.ImageProcessing.Color Imports Leadtools.Controls Imports Leadtools.Dicom Imports Leadtools.Drawing Imports Leadtools.Svg Public Shared Sub SetYUVDataExample() Dim fileName As String = Path.Combine(Common.ImagesPath.Path, "nv21.bin") Using codecs As New RasterCodecs Using image As New RasterImage(RasterMemoryFlags.Conventional, 1920, 1080, 24, RasterByteOrder.Bgr, RasterViewPerspective.TopLeft, Nothing, Nothing, 0) Using yuvFile As FileStream = File.OpenRead(fileName) Dim size As Integer = CInt(1920 * 1080 * 3 / 2) Dim yuvBuffer As Byte() = New Byte(size) {} yuvFile.Read(yuvBuffer, 0, size) image.SetYUVData(yuvBuffer, 0, size, RasterYUVFormat.NV21) codecs.Save(image, Path.Combine(Common.ImagesPath.Path, "nv21_net.jpg"), RasterImageFormat.Jpeg, 0) Dim yuvBuffer2 As Byte() = New Byte(size) {} image.GetYUVData(RasterYUVFormat.YV12, yuvBuffer2, 0, yuvBuffer2.Length) image.SetYUVData(yuvBuffer2, 0, yuvBuffer2.Length, RasterYUVFormat.YV12) codecs.Save(image, Path.Combine(Common.ImagesPath.Path, "nv21_net_2.jpg"), RasterImageFormat.Jpeg, 0) System.Diagnostics.Debug.WriteLine("Save succeeded") End Using End Using End Using End Sub
using Leadtools; using Leadtools.Codecs; using Leadtools.ImageProcessing; using Leadtools.ImageProcessing.Core; using Leadtools.ImageProcessing.Color; using Leadtools.Dicom; using Leadtools.Drawing; using Leadtools.Controls; using Leadtools.Svg; public static void SetYUVDataExample() { string fileName = Path.Combine(ImagesPath.Path, "nv21.bin"); using (RasterCodecs codecs = new RasterCodecs()) { using (RasterImage image = new RasterImage(RasterMemoryFlags.Conventional, 1920, 1080, 24, RasterByteOrder.Bgr, RasterViewPerspective.TopLeft, null, null, 0)) { using (FileStream yuvFile = File.OpenRead(fileName)) { int size = 1920 * 1080 * 3 / 2; Byte[] yuvBuffer = new Byte[size]; yuvFile.Read(yuvBuffer, 0, size); image.SetYUVData(yuvBuffer, 0, size, RasterYUVFormat.NV21); codecs.Save(image, Path.Combine(ImagesPath.Path, "nv21_net.jpg"), RasterImageFormat.Jpeg, 0); Byte[] yuvBuffer2 = new byte[size]; image.GetYUVData(RasterYUVFormat.YV12, yuvBuffer2, 0, yuvBuffer2.Length); image.SetYUVData(yuvBuffer2, 0, yuvBuffer2.Length, RasterYUVFormat.YV12); codecs.Save(image, Path.Combine(ImagesPath.Path, "nv21_net_2.jpg"), RasterImageFormat.Jpeg, 0); System.Diagnostics.Debug.WriteLine("Save succeeded"); } } } }